Package org.openquark.cal_Cal_Samples_DirectedGraphLibrary

Source Code of org.openquark.cal_Cal_Samples_DirectedGraphLibrary.Strongly_Connected_Components

package org.openquark.cal_Cal_Samples_DirectedGraphLibrary;

import java.util.Map;
import java.util.WeakHashMap;
import org.openquark.cal.internal.runtime.lecc.RTCAF;
import org.openquark.cal.internal.runtime.lecc.RTExecutionContext;
import org.openquark.cal.internal.runtime.lecc.RTFullApp;
import org.openquark.cal.internal.runtime.lecc.RTFunction;
import org.openquark.cal.internal.runtime.lecc.RTPartialApp;
import org.openquark.cal.internal.runtime.lecc.RTResultFunction;
import org.openquark.cal.internal.runtime.lecc.RTValue;
import org.openquark.cal.runtime.CALExecutorException;
import org.openquark.cal_Cal_Collections_List.Output_List;
import org.openquark.cal_Cal_Core_Prelude.Compose;
import org.openquark.cal_Cal_Core_Prelude.Output_J_Object;

public final class Strongly_Connected_Components extends RTCAF {
  /**
   * Singleton instance of this class.
   */
  private static final Strongly_Connected_Components $instance =
    new Strongly_Connected_Components();

  /*
   * Mappings of execution context to CAF instances.
   */

  /**
   * Execution context -> instance map for stronglyConnectedComponents
   */
  private static final Map $instancesMap = new WeakHashMap();

  private Strongly_Connected_Components() {
  }

  public static final synchronized RTFunction make(RTExecutionContext $ec) {
    RTFunction newInstance =
      ((RTFunction)(java.lang.Object)
        Strongly_Connected_Components.$instancesMap.get($ec));

    if (newInstance == null) {
        newInstance =
        (new RTFullApp.General._0(
          Strongly_Connected_Components.$instance));
      Strongly_Connected_Components.$instancesMap.put($ec, newInstance);
    }
    return newInstance;
  }

  public static final synchronized void resetCachedResults(RTExecutionContext $ec) {
    Strongly_Connected_Components.$instancesMap.remove($ec);
  }

  public final int getArity() {
    return 0;
  }

  public final java.lang.String getModuleName() {
    return "Cal.Samples.DirectedGraphLibrary";
  }

  public final java.lang.String getUnqualifiedName() {
    return "stronglyConnectedComponents";
  }

  public final java.lang.String getQualifiedName() {
    return "Cal.Samples.DirectedGraphLibrary.stronglyConnectedComponents";
  }

  /**
   * f
   * This method implements the function logic of the CAL function Cal.Samples.DirectedGraphLibrary.stronglyConnectedComponents
   */
  public final RTValue f(final RTResultFunction $rootNode, final RTExecutionContext $ec) throws CALExecutorException {
    // Release the fields in the root node to open them to garbage collection
    $rootNode.clearMembers();
    // Top level supercombinator logic
    return
      new RTPartialApp._3._2(
        Compose.$instance,
        new RTFullApp.General._1._S(
          Output_List.$instance,
          new RTPartialApp._2._1(
            org.openquark.cal_Cal_Core_Prelude.Output_List.$instance,
            Output_J_Object.$instance)),
        new RTPartialApp._2._1(
          org.openquark.cal_Cal_Utilities_DirectedGraph.Strongly_Connected_Components.$instance,
          _dict___Eq___Vertex.$instance));
  }

}
TOP

Related Classes of org.openquark.cal_Cal_Samples_DirectedGraphLibrary.Strongly_Connected_Components

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.